Preheat oven to 350F.
Caramelize onions in 2 tablespoons of butter until golden. Remove and set aside.
Melt 4 tablespoons of butter in pan over low heat. Add flour and whisk until smooth.
Continue cooking for 3-4 minutes.
Gradually whisk in milk, mustard, and cayenne.
Bring mixture to a simmer and continue cooking, stirring often, for additional 5-10 minutes until slightly thickened.
Remove from heat.
Stir in cheeses until fully melted.
Stir in macaroni, onion, and finally stir in the bacon.
Melt remaining tablespoon of butter in a small dish and stir in bread crumbs.
Sprinkle over the top of the macaroni and cheese.
Bake uncovered for approximately 20 minutes or until slightly browned and bubbling. Let cool for 5 minutes before serving.